package uiMain.menuconsola;

import java.util.Scanner;

import gestorHotel.Hotel;
import gestorHotel.habitacion.TipoEstadoHabitacion;
import gestorHotel.reserva.LineaReserva;
import gestorHotel.reserva.Reserva;
import gestorHotel.reserva.TipoEstadoReserva;
import gestorHotel.servicios.Minibar;

public class OpcionDeMenuLlegadaCliente extends OpcionDeMenu {

	public void ejecutar() {
		Scanner in = new Scanner(System.in);
		String h = seleccionarHotel();
		
		Hotel hotel = Main.hoteles.get(h);
		
		System.out.print("Ingrese el código de la reserva: ");
		int codReserva = Integer.parseInt(in.nextLine());
		
		if (!hotel.getReservas().containsKey(codReserva)) {
			System.out.println("La reserva no existe!");
			return;
		}
		
		Reserva reserva = hotel.getReservas().get(codReserva);
		if (!reserva.getUsuario().equals(Main.usuario.getUsuario())) {
			System.out.println("Usuario inválido!");
			return;
		}
		if (reserva.getEstado() != TipoEstadoReserva.PENDIENTE) {
			System.out.println("La reserva no está pendiente!");
			return;
		}
		Main.hoteles.get(h).getReservas().get(codReserva).setEstado(TipoEstadoReserva.ACTIVA);
		
		for (LineaReserva linea : reserva.getLineas()) {
			Main.hoteles.get(h).getHabitaciones().get(linea.getHabitacion()).setEstado(TipoEstadoHabitacion.OCUPADA);
			Main.hoteles.get(h).getHabitaciones().get(linea.getHabitacion()).setMinutosInternacionales(0);
			Main.hoteles.get(h).getHabitaciones().get(linea.getHabitacion()).setMinutosInternet(0);
			Main.hoteles.get(h).getHabitaciones().get(linea.getHabitacion()).setMinutosNacionales(0);
			
			for (int i = 0; i < Main.hoteles.get(h).getHabitaciones().get(linea.getHabitacion()).getMinibar().size(); ++i) {
				Main.hoteles.get(h).getHabitaciones().get(linea.getHabitacion()).getMinibar().get(i).setCantidad(0);
			}
		}
	}

	public String getDescripcion() {
		return "Llegada del cliente con reserva.";
	}

}
